gl: Fix implicit leaking of shader object
authorxndcn <xndchn@gmail.com>
Tue, 29 Dec 2020 14:29:37 +0000 (22:29 +0800)
committerxndcn <xndchn@gmail.com>
Tue, 29 Dec 2020 15:50:45 +0000 (23:50 +0800)
commit34ffdc6e3f5f1548ac2ded575cdd0e391cf9b66a
tree50b474041b78a60fa37c2eb09754bbb19d844ef0
parent108933b655160efc4a9795906d01b81f78ddb62c
gl: Fix implicit leaking of shader object

According to OpenGL spec, a shader object will only be flagged
for deletion unless it has been detached; when a program object
is deleted, those shader objects attached to it will be detached
but not deleted unless they have already been flagged for deletion.

So we shall detach a shader object before it is deleted, and delete
it before the program object is deleted best.
demos/gtk-demo/gtkgears.c
gdk/gdkgl.c
gsk/gl/gskglshaderbuilder.c
tests/gtkgears.c